package ar.com.aterrizar.filtrosBusqueda;

import java.util.LinkedList;
import java.util.List;

import ar.com.aterrizar.asientos.Asiento;
import ar.com.aterrizar.entidades.Aeropuerto;
import ar.com.aterrizar.filtrosBusqueda.FiltroPorAsientosReservados;

public class FiltroPorAsientosReservados extends FiltroOpcional {

	public FiltroPorAsientosReservados (Filtro filtro){
		this.filtroDecorado=filtro;
	}

	public List<Asiento> filtrar(List<Asiento> new_asientos){
		Iterable<Asiento> asientos = this.filtroDecorado.filtrar(new_asientos);
		List<Asiento> asientos_filtrados = new LinkedList<Asiento>();
		for(Asiento asiento: asientos){
			Boolean tieneReservas=false;
			Aeropuerto aero = Aeropuerto.getInstance();		
			for(Asiento tmp_asiento :aero.getSobreReserva().getAsiento()){
				if(tmp_asiento.getCodVuelo()==asiento.getCodVuelo()){
					tieneReservas=true;
				}
			}
			if(tieneReservas==false){
				asientos_filtrados.add(asiento);
			}
		}
		return asientos_filtrados;
	}
}
